package com.zhangtai.modules.dto;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class EmployeeModelDto implements Serializable {

    /**
     * 员工id
     */

    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="员工id",required = false)
    private Long oid;
    /**
     *  员工工号
     */
    @ApiModelProperty(value="员工工号",required = false)
    private String code;
    /**
     * 姓名
     */
    @ApiModelProperty(value="姓名",required = false)
    private String name;
    /**
     * 公司id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="公司id",required = false)
    private Long orgId;
    /**
     * 拟录用公司
     */
    @ApiModelProperty(value="拟录用公司",required = false)
    private String orgname;
    /**
     * 部门id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="部门id",required = false)
    private Long unitId;
    /**
     * 拟录用部门
     */
    @ApiModelProperty(value="拟录用部门",required = false)
    private String unitname;
    /**
     * 岗位id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="岗位id",required = false)
    private Long jobId;
    /**
     * 拟录用岗位
     */
    @ApiModelProperty(value="拟录用岗位",required = false)
    private String jobname;
    /**
     * 管理职级id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="管理职级id",required = false)
    private Long managementJoblevelId;
    /**
     * 管理职级
     */
    @ApiModelProperty(value="管理职级",required = false)
    private String managementJoblevel;
    /**
     * 专业职级id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="专业职级id",required = false)
    private Long professionJoblevelId;
    /**
     * 专业职级
     */
    @ApiModelProperty(value="专业职级",required = false)
    private String professionJoblevel;
    /**
     * 预计入职时间
     */
    @ApiModelProperty(value="预计入职时间",required = false)
    private Date hiredate;

    /**
     * 体系id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="体系id",required = false)
    private Long jobSystemId;
    /**
     * 体系
     */
    @ApiModelProperty(value="体系",required = false)
    private String jobSystem;

    /**
     * 条线id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="条线id",required = false)
    private Long lineId;
    /**
     * 条线
     */
    @ApiModelProperty(value="条线",required = false)
    private String line;

    /**
     * 员工状态
     */
    @ApiModelProperty(value="员工状态，2：在职，9：实习，3,4,5,6：离职",required = false)
    private String employeestatus;

    /**
     * 身份证
     */
    @ApiModelProperty(value="身份证",required = false)
    private String idcard; //身份证

    @ApiModelProperty(value="用工类型",required = false)
    private String jobType;

    /**
     * 是否中心负责人，0：不是，1：是
     */
    @ApiModelProperty(value="是否公司负责人，null：不是，1：是",required = false)
    private Integer iscentreprincipal;
    /**
     * 是否部门负责人
     */
    @ApiModelProperty(value="是否部门负责人，null：不是，1：是",required = false)
    private Integer isdepartmentprincipa;

    @ApiModelProperty(value="手机",required = false)
    private String mobile;
    @ApiModelProperty(value="邮箱",required = false)
    private String privatemail;

    /**
     * 职级id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobLevelId;
    /**
     * 职级
     */
    private String jobLevel;

    @ApiModelProperty(value = "职级类别,1:专业职级，2：管理职级", required = false)
    private Integer jobLevelType;

    private String useraccount;
}
